in more general way, i use Spring-Data method CrudRepository.save(...) which inside looks like
if (entityInformation.isNew(entity)) { em.persist(entity); return entity; } else { return em.merge(entity); }