_insert(node, value) {
    if (node === null) {
      return new Node(value, null, null);
    }

    // Passing to childnodes and update
    const side = ~~(value > node.value);
    node.children[side] = this._insert(node.children[side], value);

    // Keep it balance
    if (node.children[side].key < node.key) {
      return node.rotate(side);
    }
    return node.resize();
  }
Insert new value into the subtree of `node`