You add a development object to a transport request to transfer it to another ABAP system. Then, in the target system the same object is used.
You want to create a new or to edit an existing development object. For this, you create a new or assign an existing transport request for/to it.
Not required for objects in $ and LOCAL ABAP packages, for which the changes are NOT going to be recorded in the Transport Organizer.
If you edit a development object that is already edited by another developer, a transport request might already be assigned to this object.