O container, como o nome já diz, a transação será controlada pelo Container, através da JTA API. Usado apenas em ambientes JEE.
No caso do Bean, a transação será controlada pelo Bean (Bean Provider). Para isso, deve se usar o objeto UserTransaction (que pode ser obtido através de dependency Injection or JNDI). É utilizado basicamente onde não é um ambiente JEE.
Sei que o tópico é antigo, mas estou com uma dúvida, aqui na empresa surgiu uma solicitação para alterar o transaction-type de 3 beans, de bean para container, a questão é que apesar do escopo ser bean não existe codigo que controle as transações, e o sistema funciona perfeitamente, então eu gostaria de saber: Se declarar o transaction-type como Bean, mas não implementar o controle de transações o gerenciador de BD se encarrega automaticamente da tarefa?