When a new index value (a key and a pointer) is being inserted into a leaf node, then
if the node is not full, the insertion will not cause changes to the higher-level nodes.
This suggests that we only have to exclusively lock the leaf node in such a case, and
only exclusively lock higher-level nodes if a node is full and has to be split.