Using set parent should work fine.
On the object to pickup you could store all of the logic inside. For example have a Trigger event action (remember to set trigger in the inspector as well), and you can tag for example the player (or whatever the trigger is).
Then in the next state you can have your Set Parent action and set whatever object you would like to parent to (for example en empty game object that is a child of the main object), Also could have a Get Key Down action (space bar for example when pressed change the state.
In the last state use Set Parent again but this time set the parent object to "None" this will un-parent the object (and the object is dropped)
Hope it helps
Edit: If you are using gravity you can turn that off and on by dragging the Rigidbody from the inspector into the State then do a set property to turn it on or off.