Método para atualizar uma Jtable Abstrata em tempo de execução

Galera, eu tenho uma tabela e quero que ela atualize após a inserção de um novo dado em tempo de execução, como que faço isso?

Minha Classe TabelaModelo:
package br.com.tabela;

import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;

/**
*

*/
public class TabelaModelo extends AbstractTableModel {
private ArrayList linhas = null;
private String [] colunas = null;
//private final boolean selecione = 0;

public TabelaModelo (ArrayList lin, String [] coluna){
    setLinhas(lin);
    setColunas(coluna);
}

public ArrayList getLinhas(){
    return linhas;
}

public void setLinhas(ArrayList dados){
    linhas = dados;
}

public String[] getColunas(){
    return colunas;
}

public void setColunas(String[] nomes){
    colunas = nomes;
}

public int getColumnCount(){
    return colunas.length;
}

public int getRowCount(){
    return linhas.size();
}

public String getColumnName(int numCol){
    return colunas[numCol];
}

public Class getColumnClass(int c) {
  return getValueAt(0, c).getClass(); 
}

public void remover(int linha) {       
    linhas.remove(linha);
    fireTableRowsDeleted(linha, linha);
}

public boolean isCellEditable(int row, int col) {
       return false;
}


public Object getValueAt(int numLin, int numCol){
    Object[] linha = (Object[])getLinhas().get(numLin);
    return linha[numCol];
}

}

Minha tabela que funciona em uma tela:

public void preencherTabela() {

    String sql = "SELECT id_dest, motorista_dest, carro_dest, placa_dest, nome_dest, motivo_dest, date_format(data_dest, '%d/%m/%Y %H:%i:%s') as d_i, date_format(data_final, '%d/%m/%Y %H:%i:%s') as d_f, statu FROM destino WHERE motorista_dest = '" + txtPesquisarNome.getText() + "' order by id_dest desc";

    ArrayList dados = new ArrayList();

    String[] Colunas = new String[]{"ID", "Motorista", "Carro", "Placa", "Destino", "Motivo", "Data/Hora S.", "Data/Hora C.", "STATUS"}; //"Selecione"

    try {
        this.connection = new ConnectionFactory().getConnection();
        PreparedStatement pst = connection.prepareStatement(sql);
        rs = pst.executeQuery();
        rs.first();
        do {

            dados.add(new Object[]{rs.getInt("id_dest"), rs.getString("motorista_dest"), rs.getString("carro_dest"), rs.getString("placa_dest"), rs.getString("nome_dest"), rs.getString("motivo_dest"), rs.getString("d_i"), rs.getString("d_f"), rs.getString("statu")});

        } while (rs.next());

    } catch (Exception e) {
        // JOptionPane.showMessageDialog(null,"*ATENCÂO*! Realize ao menos uma Reserva!");
    }
    //metodo para configurar o layout da tabela
    TabelaModelo modelo = new TabelaModelo(dados, Colunas);
    tabelaReservas.setModel(modelo);
    tabelaReservas.getColumnModel().getColumn(0).setPreferredWidth(30);
    tabelaReservas.getColumnModel().getColumn(0).setResizable(false);
    tabelaReservas.getColumnModel().getColumn(0).setHeaderValue("ID");
    tabelaReservas.getColumnModel().getColumn(1).setPreferredWidth(130);
    tabelaReservas.getColumnModel().getColumn(1).setResizable(false);
    tabelaReservas.getColumnModel().getColumn(1).setHeaderValue("Motorista");
    tabelaReservas.getColumnModel().getColumn(2).setPreferredWidth(80);
    tabelaReservas.getColumnModel().getColumn(2).setResizable(false);
    tabelaReservas.getColumnModel().getColumn(2).setHeaderValue("Carro");
    tabelaReservas.getColumnModel().getColumn(3).setPreferredWidth(90);
    tabelaReservas.getColumnModel().getColumn(3).setResizable(false);
    tabelaReservas.getColumnModel().getColumn(3).setHeaderValue("Placa");
    tabelaReservas.getColumnModel().getColumn(4).setPreferredWidth(100);
    tabelaReservas.getColumnModel().getColumn(4).setResizable(false);
    tabelaReservas.getColumnModel().getColumn(4).setHeaderValue("Destino");
    tabelaReservas.getColumnModel().getColumn(5).setPreferredWidth(100);
    tabelaReservas.getColumnModel().getColumn(5).setResizable(false);
    tabelaReservas.getColumnModel().getColumn(5).setHeaderValue("Motivo");
    tabelaReservas.getColumnModel().getColumn(6).setPreferredWidth(130);
    tabelaReservas.getColumnModel().getColumn(6).setResizable(false);
    tabelaReservas.getColumnModel().getColumn(6).setHeaderValue("Data e Hora S.");
    tabelaReservas.getColumnModel().getColumn(7).setPreferredWidth(130);
    tabelaReservas.getColumnModel().getColumn(7).setResizable(false);
    tabelaReservas.getColumnModel().getColumn(7).setHeaderValue("Data e Hora C.");
    tabelaReservas.getColumnModel().getColumn(8).setPreferredWidth(80);
    tabelaReservas.getColumnModel().getColumn(8).setResizable(false);
    tabelaReservas.getColumnModel().getColumn(8).setHeaderValue("STATUS");

    tabelaReservas.getTableHeader().setReorderingAllowed(false);

    tabelaReservas.setCellEditor(null);
    tabelaReservas.getTableHeader().setReorderingAllowed(false);
    tabelaReservas.setAutoResizeMode(tabelaReservas.AUTO_RESIZE_OFF);
    tabelaReservas.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

}