docs: public ClientResponse execute(String procedure, long timeout, TimeUnit unit, Object... parameters)
              throws NoConnectionsException, IOException, ProcCallException {
          ClientImpl currentClient = this.getClient();
          if (unit == null) {
              unit = TimeUnit.SECONDS;
          }
          try {
              // If connections are lost try reconnecting.
              ClientResponse response = currentClient.callProcedureWithClientTimeout(
                      BatchTimeoutOverrideType.NO_TIMEOUT, procedure, timeout, unit, parameters);
              return response;
          }
          catch (ProcCallException pce) {
              throw pce;
          }
          catch (NoConnectionsException e) {
              this.dropClient(currentClient);
              throw e;
          }
      }