Not automatically. The only way would be to call flush() within your session bean method after making the changes, catching the PersistenceException, and then returning your own application-defined exception.
You would still need to do this in a separate transaction than your MDB because the transaction in which the failure happened would be marked for rollback.
[Message sent by forum member 'ksak' (ksak)]
http://forums.java.net/jive/thread.jspa?messageID=275212