I think there should be another way to do so without altering the code:
GetDependentRelatedEntities() should give you the list of related entities.
Then GetEntitySyncInformation(relatedEntity) will give you a Dictionary<string, EntitySyncInfo<IEntity2>> where string are the field names, and EntitySyncInfo has a "Used" property which should let you discriminate the related entities not saved already.
Well I might not have this completely right, but it should be something close.
Edit: Just realized the second method is protected. Looking for another solution...