code: public <P extends ParaObject> P create(P obj) {
  		if (obj == null) {
  			return null;
  		}
  		if (StringUtils.isBlank(obj.getId()) || StringUtils.isBlank(obj.getType())) {
  			return getEntity(invokePost(obj.getType(), Entity.json(obj)), obj.getClass());
  		} else {
  			return getEntity(invokePut(obj.getType().concat("/").concat(obj.getId()), Entity.json(obj)), obj.getClass());
  		}
  	}
docs: Persists an object to the data store. If the object's type and id are given,
  then the request will be a {@code PUT} request and any existing object will be
  overwritten.
  @param <P> the type of object
  @param obj the domain object
  @return the same object with assigned id or null if not created.