How do I find out in Embedded SQL that a transaction has been aborted
due to a deadlock?

The closes error message in sqlca seems to be:

-401 (ECPG_TRANS): Error in transaction processing line %d.
PostgreSQL signaled that we cannot start, commit, or rollback the
transaction.

but it does not seem to be informative enough.

Similarly, how do I find if a transaction has been aborted due to
nonserializability?

I am running version 7.3.

Thanks,
Moshe