@Override
	public V put(K key, V value) throws InvalidPositionException,
			BoundaryViolationException, EmptyTreeException, InvalidKeyException {

		checkKey(key);

		Position<Entry<K, V>> currentP = treeSearch(key, root());
		BSTEntry<K, V> e = new BSTEntry<K, V>(key, value, currentP);
		actionP = currentP;
		if (!isInternal(currentP))
			insertAtExternal(currentP, e).getValue();
		return null;
	}