Persistir varios Objetos com a mesma Transação JPA

Olá galera, eu estou tentando persistir varios objetos de uma vez utilizando a mesma transação JPA, ele persiste mas não persiste todos, está perdendo grande parte, por exemplo de 144 objetos inseriu apenas 28.

public class Fabrica {
	 private static Fabrica me;
	 private EntityManagerFactory emf;
	 
	  private Fabrica() {
	        emf = Persistence.createEntityManagerFactory("Scet");
	  }

	  public static Fabrica getInstance() {
		  if (me == null) {
			  me = new Fabrica();
	       }
	     return me;
	 }
	  
	 public EntityManager getEntityManager() {
	        EntityManager toReturn = emf.createEntityManager();
	        toReturn.getTransaction().begin();
	        return toReturn;
	 }
}

Metodo que persiste uma coleção de objetos

protected void inserir(List<Object> colecao)throws NegocioException{
    	EntityManager persistencia = Fabrica.getInstance().getEntityManager();
    	
    	try{
    		for(Object item: colecao){
        		persistencia.persist(item);
        	}
    		persistencia.getTransaction().commit();
    		persistencia.close();
    	}catch(Exception e){
    		persistencia.getTransaction().rollback();
    		throw new NegocioException("Erro de persistência - "+e);
    	}
    }

Pesquisei bastante mas não consegui a solução.

Sugestão: abra e feche a transação sempre no mesmo escopo, além do mais, nem sempre que você obtém um EntityManager você quer uma transação comece imediatamente. Resumindo, coloque a chamada getTransaction().begin() no método inserir.

Bom, como o seu método inserir é genérico, isto é, ele persiste qualquer tipo de objeto, verifique se os objetos que você está tentando persistir estão mapeados corretamente.