Editar informações de um índex esepcífico da TableView

Boa tarde devs!

Na img acima eu tenho tipo de Telefone “celular, fixo, etc…” e o número… Ao clicar em ADICIONAR NUMERO as duas informações vão para a tabela e eu posso inserir mais números de telefone… ao terminar eu clico em salvar e as informações são enviadas pro banco de dados corretamente… Quando eu consulto e recupero essas informações do Banco para a tela, tbm está vindo certinho! a Pergunta é: E se eu quiser, por exemplo, alterar um número ao clicar nesta tableview! Se eu tenho 3 número diferentes na table, eu consegui carrega-los nas textfields, mas quando eu vou alterar ele não altera e insere um número em outra linha!.. Espero ter sido claro… segue meus códigos e desde já agradeço a ajuda e conselhos!..

//Pega o Tipo de Telefone e o número de telefone e insere na tabela... Se houver mais de um número é só ir informando e clicando em ADICIONAR NÚMERO...
@FXML
    private void adicionarTelefoneTabela(ActionEvent event) {
        Integer index = Integer.parseInt(txtIndexador.getText().trim()) ;
        String descricao = txtTipoNumeroTelefone.getText().trim();
        String telefone = txtNumeroTelefone.getText().trim();

        colIndexadorTelefone.setCellValueFactory(new PropertyValueFactory<>("indexador"));
        colTipoTelefone.setCellValueFactory(new PropertyValueFactory<>("descricao"));
        colNumeroTelefone.setCellValueFactory(new PropertyValueFactory<>("numeroTelefone"));

        ModeloTabelaTelefone m = new ModeloTabelaTelefone(
            index, descricao, telefone
        );
        
        tblTelefone.getItems().add(m);

        txtTipoNumeroTelefone.clear();
        txtNumeroTelefone.clear();
    }

Aqui eu faço a iteração dos números da tableview e salvo no BD.

@FXML
    private void salvarRegistro() {
        List<ModeloTabelaTelefone> m = tblTelefone.getItems();
        for (ModeloTabelaTelefone tab : m) {
            mod.setIndexador(Integer.parseInt(txtIndexador.getText()));
            mod.setFk_tipoTelefone(modTipoTelefone);
            mod.setTelefone(tab.getNumeroTelefone());
            dao.inserirRegistro(mod);
    }

Aqui eu realizo a consulta para carregar as informações do BD na mesma tableview…

public void carregarTabelaBancoDados(){
        ArrayList<ModAdministrativoAgendaContato> lista = dao.listaTabela();
        ObservableList<ModeloTabelaAgendaTelefonica> observableList = FXCollections.observableArrayList();

        colIndexadorAT.setCellValueFactory(new PropertyValueFactory<>("indexador"));
        colNomeAT.setCellValueFactory(new PropertyValueFactory<>("nome"));
        colDescricao.setCellValueFactory(new PropertyValueFactory<>("descricao"));
        
        if (!observableList.isEmpty()) {
            observableList.clear();
        }
        
        lista.stream().map((e) -> new ModeloTabelaAgendaTelefonica(
            e.getIndexador(),
            e.getNomeContato(),
            e.getDescricaoContato()
        )).forEachOrdered((m) -> {
            observableList.add(m);
        });
        tblAgendaTelefonica.setItems(observableList);
    }

Aqui com um duplo clique na linha que eu quero eu carrego os dados nas textFields

@FXML
    private void carregarDadosCampos(MouseEvent event) {
        if(event.getClickCount() == 2){
            limparCampo();
        
            Integer index = tblTelefone.getSelectionModel().getSelectedItem().getIndexador();
            ModAdministrativoAgendaContatoTelefone m;
            modTelefone = daoTelefone.getNumeroTelefoneInt(index);
            
            txtTipoNumeroTelefone.setText(modTelefone.getFk_tipoTelefone().getDescricao());
            txtNumeroTelefone.setText(modTelefone.getTelefone());
        }
    }

E é aí que mora o problema como alterar essa linha específica, atualizar a tableview e depois fazer UPDATE no banco de dados!

:vulcan_salute: