All SQL you yourself execute in Metastorm BPM 9 is executed outside of the transaction. If the event you are in rolls back for any reason, including use of UserError, the executed SQL is not rolled back.
This seems like a very large oversight. This was introduced sometime in version 5, IIRC.
Is this acknowledged, or is it a bug, and are there any plans to fix / change this behaviour?