You haven’t shown the association definitions from your models, or the code you’re using to patch your entity. Or specified whether no additional records are being created, or just not everything you want.
prepare your data in nested array to reflex your models associations properly.
patchEntity from your top level model, any error occur in any level of model will result top level hasError
save the top level entity , it will save all of associated model as well, in 1 save() call.
If the save() get error for any associated model, the saved model on higher level will be rollback, any nothing is saved. (I am not 100% sure of this, but … just try yourself)