def insert_element(key, child_or_value)
      if @keys.size >= @tree.node_size
        PEROBS.log.fatal "Cannot insert into a full BigTreeNode: #{@keys.size}"
      end

      i = search_key_index(key)
      if @keys[i] == key
        # Overwrite existing entries
        @keys[i] = key
        if is_leaf?
          @values[i] = child_or_value
        else
          @children[i + 1] = child_or_value
        end
      else
        # Create a new entry
        @keys.insert(i, key)
        if is_leaf?
          @values.insert(i, child_or_value)
          @tree.entry_counter += 1
        else
          @children.insert(i + 1, child_or_value)
        end
      end
    end
def insert_element(key, child_or_value)
      if @keys.size >= @tree.node_size
        PEROBS.log.fatal "Cannot insert into a full BigTreeNode: #{@keys.size}"
      end

      i = search_key_index(key)
      if @keys[i] == key
        # Overwrite existing entries
        @keys[i] = key
        if is_leaf?
          @values[i] = child_or_value
        else
          @children[i + 1] = child_or_value
        end
      else
        # Create a new entry
        @keys.insert(i, key)
        if is_leaf?
          @values.insert(i, child_or_value)
          @tree.entry_counter += 1
        else
          @children.insert(i + 1, child_or_value)
        end
      end
    end
Insert the given value or child into the current node using the key as
 index.
 @param key [Integer] key to address the value or child
 @param child_or_value [Integer or BigTreeNode] value or BigTreeNode
 @return [Boolean] true if new element, false if override existing
         element