docs: public static void upsertJndiObjectResource(DbConn cnx, JndiObjectResourceDto dto)
      {
          if (dto.getId() != null)
          {
              QueryResult qr = cnx.runUpdate("jndi_update_changed_by_id", dto.getAuth(), dto.getDescription(), dto.getFactory(),
                      dto.getName(), dto.getSingleton(), dto.getTemplate(), dto.getType(), dto.getId(), dto.getAuth(), dto.getDescription(),
                      dto.getFactory(), dto.getName(), dto.getSingleton(), dto.getTemplate(), dto.getType());
              if (qr.nbUpdated != 1)
              {
                  jqmlogger.debug("No update was done as object either does not exist or no modifications were done");
              }
  
              // Sync parameters too
              List<String> existingKeys = cnx.runSelectColumn("jndiprm_select_all_in_jndisrc", 2, String.class, dto.getId());
              for (Map.Entry<String, String> e : dto.getParameters().entrySet())
              {
                  if (existingKeys.contains(e.getKey()))
                  {
                      // Update
                      cnx.runUpdate("jndiprm_update_changed_by_id", e.getValue(), dto.getId(), e.getKey(), e.getValue());
                  }
                  else
                  {
                      // Insert
                      cnx.runUpdate("jndiprm_insert", e.getKey(), e.getValue(), dto.getId());
                  }
              }
              ResultSet rs = cnx.runSelect("jndiprm_select_all_in_jndisrc", dto.getId());
              try
              {
                  while (rs.next())
                  {
                      String key = rs.getString(2);
                      int id = rs.getInt(1);
  
                      if (!dto.getParameters().containsKey(key))
                      {
                          cnx.runUpdate("jndiprm_delete_by_id", id);
                      }
                  }
                  rs.close();
              }
              catch (Exception e)
              {
                  throw new JqmAdminApiInternalException(e);
              }
          }
          else
          {
              JndiObjectResource.create(cnx, dto.getName(), dto.getType(), dto.getFactory(), dto.getDescription(), dto.getSingleton(),
                      dto.getParameters());
          }
      }