code: public String invokeUpdateHandler(String updateHandlerUri, String docId, Params params) {
          assertNotEmpty(updateHandlerUri, "uri");
          final String[] v = updateHandlerUri.split("/");
          final InputStream response;
          final URI uri;
          DatabaseURIHelper uriHelper = new DatabaseURIHelper(dbUri).path("_design").path(v[0])
                  .path("_update").path(v[1]).query(params);
          if (docId != null && !docId.isEmpty()) {
              //Create PUT request using doc Id
              uri = uriHelper.path(docId).build();
              response = couchDbClient.put(uri);
          } else {
              //If no doc Id, create POST request
              uri = uriHelper.build();
              response = couchDbClient.post(uri, null);
          }
          return streamToString(response);
      }
docs: Invokes an Update Handler.
  <pre>
  Params params = new Params()
  .addParam("field", "foo")
  .addParam("value", "bar");
  String output = dbClient.invokeUpdateHandler("designDoc/update1", "docId", params);
  </pre>
  
  @param updateHandlerUri The Update Handler URI, in the format: <code>designDoc/update1</code>
  @param docId            The document id to update.
  @param params           The query parameters as {@link Params}.
  @return The output of the request.