FixedKeyNode deleteChild(Field key) throws IOException {

		int index = getKeyIndex(key);
		if (index < 0)
			throw new AssertException();

		// Handle ellimination of this node
		if (keyCount == 2) {
			if (parent != null)
				throw new AssertException();
			FixedKeyNode rootNode = nodeMgr.getFixedKeyNode(getBufferId(1 - index));
			rootNode.parent = null;
			nodeMgr.deleteNode(this);
			return rootNode;
		}

		// Delete child entry
		deleteEntry(index);
		if (index == 0 && parent != null) {
			parent.keyChanged(key, getKey(0));
		}

		return (parent != null) ? parent.balanceChild(this) : this;
	}
Callback method allowing child node to remove itself from parent.
Rebalancing of the tree is performed if the interior node falls 
below the half-full point.
@param key child node key
@return root node
@throws IOException thrown if IO error occurs
Ghidra/Framework/DB/src/main/java/db/FixedKeyInteriorNode.java