code: public static TransactionOptions merge(final TransactionOptions options, final TransactionOptions defaultOptions) {
          notNull("options", options);
          notNull("defaultOptions", defaultOptions);
          return TransactionOptions.builder()
                  .writeConcern(options.getWriteConcern() == null
                          ? defaultOptions.getWriteConcern() : options.getWriteConcern())
                  .readConcern(options.getReadConcern() == null
                          ? defaultOptions.getReadConcern() : options.getReadConcern())
                  .readPreference(options.getReadPreference() == null
                          ? defaultOptions.getReadPreference() : options.getReadPreference())
                  .build();
      }
docs: Merge the two provided transaction options, with the first taking precedence over the second.
  
  @param options the transaction options, which take precedence for any property that is non-null
  @param defaultOptions the default transaction options
  @return the merged transaction options