Ok. Just define your transaction attributes (for the session bean as well the entity beans) to "Required". Then, if the session bean is invoked without a transactional context, it will acquire a new one, and if any of the entity beans fail, the whole transaction will be rolled back.
Another question is whether
you should use "Required" or "RequiresNew" for the session bean (i.e. whether you want to rollback the caller's transaction or not).