I'm not quite sure what you are getting at.
The onBeforeLoad happens when the form is loading. When you load the page with the form on it, either with existing data if you are editing a row, or creating a new form from default data.
So that's a page load. You hit the web server, it fires up J! through PHP, J! instantiates itself, opens the main J! database session, Fabrik gets loaded, and (if we're editing a row) we create our List/Form specific database session and read your form's data from the table. We load and render the form. Fabrik and J! finish their processing, J! exits, PHP scripting terminates, and the J! / Fabrik database sessions get killed off.
Then you submit your form. This starts another page load, J! and Fabrik fire up, create the database sessions, and Fabrik writes out the data through our database session.
During form load, we don't write anything to your data table. So there is nothing to commit or roll back. It's only during the submission processing that data is actually written to the tables. So that's the only session you care about starting and completing a transaction on.
So if you do a transaction start onBeforeProcess, during the submission phase, that will happen BEFORE any changes have been made to your table by Fabrik. You can then either commit or rollback in the onAfterProcess.
-- hugh