... das ist weit weg von best practices. SQL functions sind dafür gedacht einzelne Feldwerte zu liefern, sprich in einem select statement berechnete Felder bereitzustellen. Es wäre fatal, wenn man da ein commit oder rollback machen dürfte.
Ich empfehle dringendst das Design Deiner Anwendung zu überdenken - Du bist dabei von einem Hundehaufen in den nächsten ...

D*B