По сути, поскольку вставка не реализована как функция, а содержит ее, а это означает, что вставка имеет только побочные эффекты, она изменяет состояние BST. Contains по своей сути является функцией - она возвращает ответ для заданного ввода.
Факт, что вставка возвращает this
в конце, не является обязательным, он может также легко иметь возвращаемое значение void.
Функциональная версия вернет новый BST, который похож на оригинал, но со вставленным элементом, и для этого потребуется использовать возвращаемое значение, там будет немного больше сложности. (Я не защищаю здесь функциональную версию!)