Is this what you are looking for?
You can inherit your own transaction from the PB transaction object and create your own methods, events and properties. Then place it as your transaction object in the application.
Or you would create your own in a memory variable and connect to it.
There is a SQLPreview event in the transaction object.