>>546はスレッド間の排他の話ではあっても、
例外の話ではない。

> 結局node.valueを取得するまでmapをロック
> するコードを毎度クライアント側で書く必要がある。

あくまでそういう処理ならば、そう書くしかないのでは。