Here is a sample code in java:
    try {
        /* create connection */
        Connection conn = DriverManager.getConnection(url, username, password);
        Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
        /* create a CachedRowSet */
        CachedRowSet cachedResult = new com.sun.rowset.CachedRowSetImpl();
        /* set connection information */
        cachedResult.setUrl(url);
        cachedResult.setUsername(username);
        cachedResult.setPassword(password);
        ResultSet result = stmt.executeQuery("SELECT * FROM tbl");
        /* populate CachedRowSet */ 
        cachedResult.populate(result);
        /* close connection */
        result.close();
        stmt.close();
        conn.close();
        /* now we edit CachedRowSet */
        while (cachedResult.next()) {
            if (cachedResult.getInt("id") == 12) {
                cachedResult.moveToInsertRow();
                /* use some updateXXX() functions */
                cachedResult.insertRow();
                cachedResult.moveToCurrentRow();
            }
        }
    } catch (SQLException e) {
        e.printStackTrace();
}
Now my question is this:
1. Should I use insertRow()? or I should use acceptChanges() instead? or maybe both?
2. where should I put acceptChanges() in this code?
 
    