Since we do not have access to the Microsoft code that powers a form, we cannot implement a form level transaction. Within a form, a transaction would be implemented within a single event. A reason might be that you have a complicated update process that requires two tables to be updated and you don't want to take a chance of the update failing after only one part of the action has happened.
The correct method of controlling whether or not a record is saved is the Form's BeforeUpdate event as Gasman alluded to. The BeforeUpdate event is like the flapper at the end of a funnel. If the flapper is open, the record is saved. If it is closed, the record is NOT saved. YOU have complete control. Add validation code in the BeforeUpdate event to ensure that required fields are present and other fields have valid values if you have rules such as DOB can't be > today.
Personally, I don't recommend prompting people for each save. I use validation code so I can be sure that the data being saved is valid and I don't want to desensitize the user with prompts. If they get used to always clicking OK because I prompt every time they save a record, they will robotically click OK and blow by errors and warning messages also.
Records that are not dirtied do NOT get saved. If your code is dirtying a record before the user types something, then you are causing a problem. If you want to auto populate controls, wait and put the code into the form's BeforeInsert event. That event won't run until the user has typed the first character into some control.