In your Bean you have only the annotation @Stateless in this case the transaction is container managed (CMT).
If you want to control the Tx demarcation you should add @TransactionManagement(TransactionManagementType.BEAN)
If you want only a Tx for your method I recommend to use CMT and add @TransactionAttribute(TransactionAttributeType.REQUIRED) in that case the container will do all the work.
Your method can be look like:
@Override
public void savePrivato(String nome , String cognome) {
Privato pr = new Privato();
pr.setNome(nome);pr.setCognome(cognome);
em.persist(pr);
System.out.println("Utente Salvato");
}