Subject [firebird-support] Identity vs Before Insert Trigger
Author Rustam

As i understand your question - yes. BI trigger fired before column constraints check. To allow you process and correct row to store without errors.

Execution sequence: BI trigger -> default values -> not null -, FK-, check- constraints ->  record storing -> AI triggers.

However, the same query works without issue with a before-insert trigger 
using a generator. My question - is this intended behavior? Or a bug in
the identity implementation?