code: protected URI doPostCreateMultipart(String path, InputStream inputStream, MultivaluedMap<String, String> headers) throws ClientException {
          this.readLock.lock();
          try {
              WebResource.Builder requestBuilder = getResourceWrapper().rewritten(path, HttpMethod.POST).getRequestBuilder();
              requestBuilder = ensurePostCreateMultipartHeaders(headers, requestBuilder);
              ClientResponse response = requestBuilder.post(ClientResponse.class, inputStream);
              errorIfStatusNotEqualTo(response, ClientResponse.Status.OK, ClientResponse.Status.CREATED);
              try {
                  return response.getLocation();
              } finally {
                  response.close();
              }
          } catch (ClientHandlerException ex) {
              throw new ClientException(ClientResponse.Status.INTERNAL_SERVER_ERROR, ex.getMessage());
          } finally {
              this.readLock.unlock();
          }
      }
docs: Creates a resource specified as a multi-part form in an input stream.
  
  @param path the the API to call.
  @param inputStream the multi-part form content.
  @param headers any headers to send. If no Accepts header is provided,
  this method as an Accepts header for text/plain. If no Content Type
  header is provided, this method adds a Content Type header for multi-part
  forms data.
  @return the URI representing the created resource, for use in subsequent
  operations on the resource.
  @throws ClientException if a status code other than 200 (OK) and 201
  (Created) is returned.