private int moveRecords(int index, int offset) {

		int lastIndex = keyCount - 1;

		// No movement needed for appended record
		if (index == keyCount) {
			if (index == 0) {
				return buffer.length() + offset;
			}
			return getRecordDataOffset(lastIndex) + offset;
		}

		// Determine block to be moved
		int start = getRecordDataOffset(lastIndex);
		int end = (index == 0) ? buffer.length() : getRecordDataOffset(index - 1);
		int len = end - start;

		// Move record data
		buffer.move(start, start + offset, len);

		// Adjust stored offsets
		for (int i = index; i < keyCount; i++) {
			putRecordDataOffset(i, getRecordDataOffset(i) + offset);
		}
		return end + offset;
	}
Move all record data, starting with index, by the specified offset amount.
If the node contains 5 records, an index of 3 would shift the record data
for indexes 3 and 4 left by the spacified offset amount.  This is used to 
make space for a new or updated record.
@param index the smaller key/record index (0 &lt;= index1)
@param offset movement offset in bytes
@return insertion offset immediately following moved block.
Ghidra/Framework/DB/src/main/java/db/FixedKeyVarRecNode.java