message: refactor: use unique_ptr for ResultHolder
diff: @@ -429,12 +429,11 @@ JNIEXPORT jobject JNICALL Java_org_duckdb_DuckDBNative_duckdb_1jdbc_1execute(JNI
  if (!stmt_ref) {
  env->ThrowNew(J_SQLException, "Invalid statement");
  }
  - auto res_ref = new ResultHolder();
  + auto res_ref = make_unique<ResultHolder>();
  vector<Value> duckdb_params;
  idx_t param_len = env->GetArrayLength(params);
  if (param_len != stmt_ref->stmt->n_param) {
  - delete res_ref;
  env->ThrowNew(J_SQLException, "Parameter count mismatch");
  return nullptr;
  }
  @@ -493,13 +492,11 @@ JNIEXPORT jobject JNICALL Java_org_duckdb_DuckDBNative_duckdb_1jdbc_1execute(JNI
  try {
  duckdb_params.push_back(Value(param_string));
  } catch (Exception const &e) {
  - delete res_ref;
  env->ThrowNew(J_SQLException, e.what());
  return nullptr;
  }
  continue;
  } else {
  - delete res_ref;
  env->ThrowNew(J_SQLException, "Unsupported parameter type");
  return nullptr;
  }
  @@ -510,11 +507,10 @@ JNIEXPORT jobject JNICALL Java_org_duckdb_DuckDBNative_duckdb_1jdbc_1execute(JNI
  if (res_ref->res->HasError()) {
  string error_msg = string(res_ref->res->GetError());
  res_ref->res = nullptr;
  - delete res_ref;
  env->ThrowNew(J_SQLException, error_msg.c_str());
  return nullptr;
  }
  - return env->NewDirectByteBuffer(res_ref, 0);
  + return env->NewDirectByteBuffer(res_ref.release(), 0);
  }
  JNIEXPORT void JNICALL Java_org_duckdb_DuckDBNative_duckdb_1jdbc_1release(JNIEnv *env, jclass, jobject stmt_ref_buf) {
  