On Frits's notes, p. 60,
The client will rollback the transaction because of the mark set by the CM bean.
in Action , p.171
In a CMT, the container starts, commits and rolls back a transaction on your behalf.
In BMT, the client programmatically determines when the container should rollback the transaction.
In CMT, the container determines when to rollback.
So, I think in both BMT and CMT, the transaction manager in the EJB container which does the rollback of transaction.
I guess the client itself does not rollback the transaction.