Em uma classe main setando manualmente consigo persistir no banco que é uma beleza.
Acredito eu estar chamando o método de forma incorreta. Nem um erro se quer me é retornado…
Abaixo meu Bean
@ManagedBean
@SessionScoped
public class PacienteBean implements Serializable {
    
    private Paciente paciente = new Paciente();
    List <Paciente> pacientes = new ArrayList();
    private PacienteDao dao = new PacienteDaoImp();
    public PacienteBean() {
        pacientes = dao.consultar(); 
    }
    
    public void salvar(){
        dao.merge(paciente); 
        paciente = new Paciente(); 
        pacientes = dao.consultar(); 
    }
    
    public void editar(){
        paciente = dao.getById(paciente.getId()); 
    }
    
    public void deletar(){
        dao.delete(paciente); 
        pacientes = dao.consultar(); 
    }
    //getters & setters
    }
}Minha view
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="./template.xhtml"
                xmlns:p="http://primefaces.prime.com.tr/ui"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html">
    <ui:define name="conteudo">
        <h:form id="form">
            <p:panel header="Cadastro de Pacientes" id="panel">
                <h:panelGrid columns="2">
                    <h:outputLabel value="Nome:" for="nome"/>
                    <p:inputText id="nome" value="#{pacienteBean.paciente.nome}" maxlength="40" size="40"/>
                    <h:outputLabel value="E-mail:" for="email"/>
                    <p:inputText id="email" value="#{pacienteBean.paciente.email}" maxlength="40" size="40"/>
                    <h:outputLabel value="Rua: " for="rua"/>
                    <p:inputText id="rua" value="#{pacienteBean.paciente.endereco.rua}" maxlength="40" size="40"/>
                    <h:outputLabel value="Bairro:" for="bairro"/>
                    <p:inputText id="bairro" value="#{pacienteBean.paciente.endereco.bairro}" maxlength="40" size="40"/>
                    <h:outputLabel value="CEP:" for="cep"/>
                    <p:inputMask id="cep" value="#{pacienteBean.paciente.endereco.cep}" mask="99999-999" size="40"/>
                    <h:outputLabel value="Celular:" for="celular"/>
                    <p:inputMask id="celular" value="#{pacienteBean.paciente.celular}" mask="(99) 9999 - 9999" size="40"/>
                    <h:outputLabel value="CPF:" for="cpf"/>
                    <p:inputMask id="cpf" value="#{pacienteBean.paciente.cpf}" mask="999.999.999-99" size="40"/>
                    <h:outputLabel value="Data de Nascimento:" for="nascimento"/>
                    <p:calendar id="nascimento" value="#{pacienteBean.paciente.nascimento}" pattern="dd/mm/yyyy" size="40" effect="slideDown"/>
                    <p:commandButton id="btnSalvar" value="Salvar" action="#{pacienteBean.salvar()}" update="form, tabela"/>
                </h:panelGrid>
                <p:dataTable id="tabela" value="#{pacienteBean.pacientes}"  var="pac" emptyMessage="Nehum registro incluído" paginator="true" rows="10">
                    <f:facet name="header">
                        Lista de Pacientes
                    </f:facet>
                    <p:column headerText="Nome" style="text-align: center">
                        <h:outputText value="#{pac.nome}"/>
                    </p:column>
                    <p:column headerText="E-mail" style="text-align: center">
                        <h:outputText value="#{pac.email}"/>
                    </p:column>
                    <p:column headerText="Endereco" style="text-align: center">
                        <h:outputText value="#{pac.rua}"/>
                    </p:column>
                    <p:column headerText="Celular" style="text-align: center">
                        <h:outputText value="#{pac.celular}"/>
                    </p:column>
                    <p:column headerText="CPF" style="text-align: center">
                        <h:outputText value="#{pac.cpf}"/>
                    </p:column>
                    <p:column headerText="Nascimento" style="text-align: center">
                        <h:outputText value="#{pac.nascimento}"/>
                    </p:column>
                    <p:column headerText="Sexo" style="text-align: center">
                        <h:outputText value="#{pac.sexo}"/>
                    </p:column>
                </p:dataTable>
            </p:panel>
        </h:form>
    </ui:define>
</ui:composition>