안전한 move는 detach와 attach를 한 transaction에 둔다

subtree 내부 path는 건드리지 않는다.

cycle check

node→new parent

delete old

old ancestors×subtree

insert new

new ancestors×subtree

update parent

same commit