VarKeyNode insert(int id, Field key, VarKeyNode node) throws IOException {

		// Insert key into this node
		int index = -(getKeyIndex(key) + 1);
		if (index < 0 || id == 0)
			throw new AssertException();
		insertEntry(index, key, id);

		// Set child node's parent
		node.parent = this;

		if (index == 0 && parent != null) {
			parent.keyChanged(getKeyField(1), key, this);
		}

		return getRoot();
	}
Insert a new entry into this node.
It is assumed that there is sufficient space for the new entry.
@param id id of new node
@param key leftmost key associated with new node.
@param node child node which corresponds to the id and key.
@return root node.
@throws IOException thrown if an IO error occurs
Ghidra/Framework/DB/src/main/java/db/VarKeyInteriorNode.java