Rollback Transaction not Active

Olá.
Tenho algumas duvidas como usar rollback.
Pois todas as vezes que cai na exceção do rollback a transação não é mais ativa e da erro. Pra contornar isso preciso verificar se a transação ta ativa antes de usar rollback. Mas qual a finalidade do rollback ja que quando entra na exceção a transação não está mais ativa?
Quando ocorre uma transação no commit ja ocorre um rollback automatico?
É necessário mesmo usar rollback?

Estou usando dessa forma:

     EntityManager em = JPAHelper.getEntityManager();  
   
         EndidadeDao entidadeDao = new EntidadeDao();  
   
         try {  
             entidadeDao .setEntityManager(em);  
             em.getTransaction().begin();  
   
           //  
//                     aqui eu faço as operações  do MYSQL  
            //  
              
             em.getTransaction().commit();  
             
         }    
         catch (Exception e) {  
   
             e.printStackTrace();               
             System.out.println("\nException em apagar: " + e.getMessage());  
   
             em.getTransaction().rollback();  
    
         }  
         finally {  
             em.close();  

         }