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

		if (arguments == null || arguments.length != 1 ||
			!(arguments[0] instanceof FunctionDescription)) {
			throw new IllegalArgumentException(
				"Insert method for CallgraphTable must take exactly one FunctionDescription argument");
		}

		FunctionDescription func = (FunctionDescription) arguments[0];

		PreparedStatement s =
			insertStatement.prepareIfNeeded(() -> db.prepareStatement(INSERT_STMT));
		long srcid = func.getId().getLong();
		List<CallgraphEntry> callvec = func.getCallgraphRecord();
		if (callvec != null) {
			for (CallgraphEntry element : callvec) {
				FunctionDescription destFunc = element.getFunctionDescription();
				long destid = destFunc.getId().getLong();
				s.setLong(1, srcid);
				s.setLong(2, destid);
				s.executeUpdate();
			}
		}

		return 0;
	}
@param func the function description
@param trackcallgraph true if the database tracks call graph information
@return the list of {@link CallgraphRow}s
@throws SQLException if there is a problem parsing the {@link ResultSet} objects
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/tables/CallgraphTable.java