add(value) {
    let node = new BinaryTreeNode(value);

    if (this.root) {
      const { found, parent } = this.findNodeAndParent(value); // <1>
      if (found) { // duplicated: value already exist on the tree
        found.meta.multiplicity = (found.meta.multiplicity || 1) + 1; // <2>
        node = found;
      } else if (value < parent.value) {
        parent.setLeftAndUpdateParent(node);
      } else {
        parent.setRightAndUpdateParent(node);
      }
    } else {
      this.root = node;
    }

    this.size += 1;
    return node;
  }
Insert value on the BST.

If the value is already in the tree,
then it increases the multiplicity value
@param {any} value node's value to insert in the tree
@returns {BinaryTreeNode} newly added node