Binary Search Tree insert method (map interface)
The algorithm looks fine. Some other notes:


I would use longer variable names than r, k, e etc. Longer names would make the code more readable since readers/maintainers don't have to decode or memorize the abbreviations.


new MyBSNode&lt;E&gt;(null)


Consider creating a default contructor, a named factory method or an explanatory local variable for null. Currently readers have to check the MyBSNode constructor to figure out what's that null supposed to mean.
MyBSNode does not seem to have a good name. Try to find something more descriptive.
n.setElement(k, e); // only modifies e


Creating a setValue(E value) method would make the comment unnecessary and would be cleaner.
I'd consider moving isLeaf to BSPosition since it seems data envy. I guess its only task is to check that both left and right children are nulls.
treeInsert does not do any insertion, its name is a little bit misleading, it just searches the parent of the new node or a node with the same key. I'd call it according to that. (searchInsertionPoint for example.)