As with the responses in all of the answers and OP, I conclude that this isn't possible with current synchronization techniques. I will conclude by saying that we cannot perform atomic compound operations using a get/set style method call without using blocking synchronizers.
If contention is the problem, I suggest reading this article. A quick google search should turn up some other links if you are digging deeper.