tree only needs to be locked when we're actually updating it