@Override public <D extends Document<?>> D upsert( D document, ReplicateTo replicateTo, long timeout, TimeUnit timeUnit) { return Blocking.blockForSingle( asyncBucket.upsert(document, replicateTo).single(), timeout, timeUnit); }