Atualizar dataTable com Ajax conforme envia dados

Olá! Preciso gravar dados de um formulário no BD e conforme eu vou gravando, mostre os dados no dataTable. Tentei usar o update do ajax e não funcionou (acredito que seja porque meu MB é ViewScoped). Funciona apenas quando atualizo a página, e não dinamicamente. Este é meu código:

    <h:form>
        <h:outputLabel value="Indicador: " />
        <h:inputText id="indicador" value="#{cadastraIndicadorMB.indicador.descricaoindicador}">
            <p:ajax event="blur" update="indicador" />
        </h:inputText>
        <h:commandButton value="Salvar">
            <p:ajax event="click" listener="#{cadastraIndicadorMB.salvarIndicador()}" update="indicador"/>
            <p:ajax event="click" update=":formIndicador:tableIndicador" />
        </h:commandButton>
     </h:form>
     <h:form id="formIndicador">
        <h:dataTable id="tableIndicador" var="indicador" value="#{cadastraIndicadorMB.indicadorLista}">
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Código: "/>
                </f:facet>
                <h:commandLink>
                    <h:outputText value="#{indicador.idindicador}"/>
                    <f:setPropertyActionListener value="#{indicador}" target="#{cadastraIndicadorMB.indicador}"/>
                </h:commandLink>
            </h:column>
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Indicador: "/>
                </f:facet>
                <h:commandLink>
                    <h:outputText value="#{indicador.descricaoindicador}"/>
                    <f:setPropertyActionListener value="#{indicador}" target="#{cadastraIndicadorMB.indicador}"/>
                </h:commandLink>
            </h:column>
        </h:dataTable>
    </h:form>

Abraços!

Opa.

Ao salvar você está atualizando sua lista no managedBean? indicadorLista?

Só para finalizar o tópico, vou mostrar como solucionei o problema.
Meu erro estava no seguinte trecho do código:

<h:commandButton value="Salvar">
    <p:ajax event="click" listener="#cadastraIndicadorMB.salvarIndicador()}" update="indicador"/>
    <p:ajax event="click" update=":formIndicador:tableIndicador" />
</h:commandButton>

Estava colocando duas tags ajax no commandButton.
A solução era mais simples do que pensava:

<h:commandButton value="Salvar">
    <p:ajax event="click" listener="#{indicadorMB.salvarIndicador()}" update="@form, :formIndicador:tableIndicador"/>
</h:commandButton>

Onde, ao clicar, eu atualizo o form atual (@form) e o caminho da minha tabela que está em outro form (:formIndicador:tableIndicador). Separando os “lugares” que quero atualizar usando vírgulas.

No método salvar do IndicadorMB, eu atualizo o arrayList após a inserção.

public List<Indicador> atualizaLista() {
    indicadorLista = new ArrayList<>();
    indicadorLista = indicadorDAO.getAll(Indicador.class, "Indicador.findAll");
    return indicadorLista;
}

Era isso!