Во-первых, вы можете написать свой метод saveToCache со следующей логикой:
if (success) return response;
else return new EmptyResponse();
тогда ваш код RxJava может быть как
Observable.fromCallable(yourNetworkCall())
.map(response -> saveToCache(response))
.filter(result -> !result.isEmpty())
.subscribe(yourObserver)