// if this is an update, this might be the only mod to the row, so
// make sure the where condition is set
Row row = rm.getRow(fk.getTable(), action, invsm, true);
if (action == Row.ACTION_UPDATE)
row.wherePrimaryKey(invsm);
// update the inverse pointer with our oid value
if (writeable)
row.setForeignKey(fk, io, sm);
if (orderWriteable)