JTable Sacar datos para guardarlos

Buenas noches compañeros.
He tratado de buscar por muchos medios la solucion a un problemita que se me ha presentado al tratar de guardar los datos de un JTable a la BD

Tengo el siguiente modelo para la Tabla.

package Modelos_Tablas;

import Clases.Clase_Descuento_Quincenal;
import Clases.Pool_Conexion;
import Metodos.Metodos_Descuento_Quincenal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.table.AbstractTableModel;

public class Descuentos_Quincenal extends AbstractTableModel{
public Object [][] datos;
private Connection co;
PreparedStatement pst=null;
ResultSet rs=null;
private int jl, totaldatos;
private String fecha;

public Descuentos_Quincenal() throws SQLException {
co = new Pool_Conexion().getConnection();
java.sql.Statement sql = co.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = sql.executeQuery("select nombre, cedula, tahorro, afondo from Personal order by Personal.nombre");
rs.last();
totaldatos= rs.getRow();
datos = new Object[rs.getRow()][8];
rs.beforeFirst();
while(rs.next()){
datos[jl][0]=rs.getString(1);
datos[jl][1]=rs.getString(2);
datos[jl][2]="0";
datos[jl][3]="0";
if(rs.getInt(3)==1 || rs.getInt(3)==3){
datos[jl][4]=rs.getString(4);
}else{
datos[jl][4]="0";
}
datos[jl][5]="0";
datos[jl][6]="0";
datos[jl][7]="0";
jl++;
}
datos[jl][0]="Total";
datos[jl][1]="";
rs.close();
new Pool_Conexion().closeConnection();
}

public Descuentos_Quincenal(Object [][] datos) { // PARA CARGAR LA TABLA CON LA CABECERA SIN DATOS
this.datos = datos;
}

public Descuentos_Quincenal(String fecha) { // PARA QUE NO SE CONECTE A LA BD Y PODAMOS GUARDAR
this.fecha = fecha;
}

private String[] columnNames = {"Empleado",
"Cedula",
"Prestamo a la Empresa",
"Responsabilidad",
"Ahorro fondo",
"Abono a Prestamos",
"Otros",
"Total a Descontar"};

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

public int getRowCount() {
return datos.length;
//return cdatos+1;
}

@Override
public String getColumnName(int col) {
return columnNames[col];
}

public Object getValueAt(int row, int col) {
return datos[row][col];
}

@Override
public Class getColumnClass(int c) {
return Integer.class;
}

@Override
public boolean isCellEditable(int row, int col) {
if (col==0 || col==1 || col==this.getColumnCount()-1 || row==this.getRowCount()-1){
return false;
} else {
return true;
}
}

@Override
public void setValueAt(Object value, int row, int col) {
//datos[row][col] = value;
//fireTableRowsUpdated(row,col);
int tot=0;
// Calcula el valor de cada columna
for(int j=2;j