@Override
	public long insert(Object... arguments) throws SQLException {

		if (arguments == null || arguments.length != 2 ||
			!(arguments[0] instanceof CategoryRecord)) {
			throw new IllegalArgumentException(
				"Insert method for ExeToCategoryTable must take exactly 2 arguments: CategoryRecord and a long(id_exe)");
		}

		CategoryRecord catrec = (CategoryRecord) arguments[0];
		long id_type = catstringtable.writeString(catrec.getType());
		long id_category = catstringtable.writeString(catrec.getCategory());
		long exe_id = (long) arguments[1];

		// Insert a new row referencing that existing row into the execattable.
		PreparedStatement s =
			insertExeCatStatement.prepareIfNeeded(() -> db.prepareStatement(INSERT_STMT));
		s.setInt(1, (int) exe_id);
		s.setInt(2, (int) id_type);
		s.setInt(3, (int) id_category);
		s.executeUpdate();

		// Return value is meaningless here.
		return 0;

	}
Constructor 

@param catstringtable table containing all category values
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/tables/ExeToCategoryTable.java