I am using EntityListeners to catch Insert, Update and Delete events. During my test case I notice that PreRemove method callback is never called. In the same time PreUpdate is always called whether Delete (em.remove()) or Insert is called.
In my opinion Pre/Post Persist must be called on Insert operations. Pre/Post Update must be called on Update operations. Pre/Post Remove must be called on Delete operations.