Subject Re: [firebird-support] Transaction inside stored procedures
Author Ann W. Harrison

The Firebird model of stored procedures is that they are
black boxes which can do many wonderful things in the database,
but which do not affect the client context - calling a
stored procedure won't cause the client's work to be committed
or rolled back, nor will it create or drop tables, indexes,
procedures, or other metadata objects.

Like any good black box, everything done by a stored procedure
either succeeds or fails - it won't leave half-done stuff
lying around. However, if there are error conditions that the
procedure should handle, it can. Procedure can catch errors and
take actions based on those errors, including undoing blocks
of work.