Setting Parent ID (foreign key value) directly

Correct, the parent is already in the manager and that's the best way to do, as it won't execute any SQL but retrieve from cache.

You can also create the Parent object in advance and add it to the manager before making the Find calls:

Parent := TParent.Create;
Parent.Id := ParentID;
ObjMgr.Update(Parent);

But note that you have to be sure that the Parent object will never be flushed, otherwise the record in the database will be updated and the missing properties will be set to null.