code: @Override
      public void onUpdateTweet(@NonNull final Long tweetId) {
          // 1.
          disposeOnStop(storIOContentResolver
                  .get()
                  .object(Tweet.class)
                  .withQuery(Query.builder()
                          .uri(TweetMeta.CONTENT_URI)
                          .where(TweetsTable.COLUMN_ID + " = ?")
                          .whereArgs(tweetId)
                          .build())
                  .prepare()
                  .asRxSingle()
                  // 2.
                  .map(new Function<Optional<Tweet>, Optional<Tweet>>() {
                      @Override
                      @NonNull
                      public Optional<Tweet> apply(@NonNull Optional<Tweet> tweet) {
                          // We can get empty optional in parameter so we check it
                          return tweet.isPresent()
                                  ? Optional.of(Tweet.newTweet(tweetId, tweet.get().author() + "+", tweet.get().content()))
                                  : tweet;
                      }
                  })
                  // 3.
                  .flatMap(new Function<Optional<Tweet>, Single<?>>() {
                      @Override
                      @NonNull
                      public Single<?> apply(@NonNull Optional<Tweet> tweet) {
                          return storIOContentResolver
                                  .put()
                                  .object(tweet.get())
                                  .prepare()
                                  .asRxSingle();
                      }
                  })
                  // Let Subscriber run in Main Thread e.g. for Toast
                  .observeOn(mainThread())
                  .subscribe(new Consumer<Object>() {
                      @Override
                      public void accept(@NonNull Object o) {
  
                      }
                  }, new Consumer<Throwable>() {
                      @Override
                      public void accept(Throwable e) {
                          // Just for curiosity )
                          Toast.makeText(getActivity(), e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
                      }
                  }));
      }
docs: This method from {@link TweetsAdapter.OnUpdateTweetListener}
  interface.
  It updates specific tweet by adding '+' to the end of tweet author
  every time when is called.
  It has chain of 3 steps in ReactiveX-way:
  1. getting tweet via its id
  2. mapping with changing author
  3. putting result back to database