The only thing I can think of is 2 staging tables; 1 for the main and 1 for the subform and bind to those. If the process goes as you wish, write back to the main table(s) as appends or updates as the case may be. If it doesn't, flush the staging tables for next time and the 'main' tables remain unaffected. This way, you bind the form(s) to the staging tables and retain all the usual automation. If there is a better way, I don't know of it, mainly because in many cases a button to save a record on a bound form is pointless without staging tables. That's because anything you do that causes a new record to not be current will automatically save it. F'rinstance, you have a datasheet form, create a new record then select a prior record. New record just got saved - unless it fails validation. If that happens with staging tables, you still have a chance to discard the edits or new record.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.