Just that is the question: is possible to do a ROLLBACK in a MySQL trigger?
If answer is yes, then, please, explain how.
If the trigger raises an exception, that will abort the transaction, effectively rolling back. Will this work for you?