Bean-Managed Transactions (BMT) in EJB 3.1 spec allows to set transaction boundaries programmatically by obtaining a transaction and specifying `begin` and `end` of transaction in the code.