Unfortunately, there is nothing you can do. SQLExceptions are black boxes, there is no categorization beyond it failed. To make this even worse, EJB create exceptions do not support a root cause.
You could go bitch at the spec comities, but don't hold your breath.
When David and I get arround to writing the JBossCMP to JCA layer you will be able to handle db level transactions in a custom JCA wrapper, but that won't happen until atleast JBoss 4.0.