I have a doubt about PostRemove and PostUpdate events. In the Pro JPA 2 book, on page 327, it states "When the SQL for deletion of an entity finally does get sent to the database, the PostRemove event will get fired. As with the PostPersist lifecycle event, the PostRemove event does not guarantee success. The enclosing transaction may still be rolled back".
As I learned, transaction can either commit, or rollback. In the sentence, if the deletion SQL does get sent to the database, that means the transaction is already committed, how come it may still be rolled back?