Executando várias transações JPA em paralelo

Tenho dois (ou mais) Java Threads criando, atualizando e excluindo entidades de um banco de dados mysql usando JPA. Para conseguir isso, tenho uma classe PersistenceLayer que cria o EntityManager e fornece métodos de salvar, atualizar e excluir para todas as minhas entidades, como:

public void saveEntity(Entity entity) {
    manager.getTransaction().begin();
    manager.persist(entity);
    manager.getTransaction().commit();
}

public void saveEntity2(Entity2 entity) {
    manager.getTransaction().begin();
    manager.persist(entity);
    manager.getTransaction().commit();
}

Se um thread entrar na operação saveEntity e o outro saveEntity2 ao mesmo tempo, ambos tentarão obter a transação do EntityManager que falhará. No entanto, sempre achei que o banco de dados subjacente é capaz de gerenciar várias transações, especialmente se os dois estiverem trabalhando em linhas diferentes ou mesmo em tabelas diferentes. É claro que eu poderia sincronizar os blocos, mas isso significaria que apenas uma conexão de banco de dados é possível por vez, que não será dimensionada para vários usuários, criando vários encadeamento

Que suposição errada eu estou fazendo aqui? É possível enviar várias transações para um banco de dados via JPA e deixar o banco de dados lidar com problemas de simultaneidade?

questionAnswers(2)

yourAnswerToTheQuestion