Add logOnly "dry run" to Update()

logs but doesn't call Set().
Replace compareAndUpdate with Update()