@Override
  public List<Execution> lockAndGetDue(Instant now, int limit) {
    if (jdbcCustomization.supportsSingleStatementLockAndFetch()) {
      LOG.trace("Using single-statement lock-and-fetch");
      return jdbcCustomization.lockAndFetchSingleStatement(
          getTaskRespositoryContext(), now, limit, orderByPriority);
    } else if (jdbcCustomization.supportsGenericLockAndFetch()) {
      LOG.trace("Using generic transaction-based lock-and-fetch");
      return lockAndFetchGeneric(now, limit);
    } else {
      throw new UnsupportedOperationException(
          "The JdbcCustomization in use for the database "
              + "indicates that it does not support SELECT FOR UPDATE .. SKIP LOCKED. If it indeed does, "
              + "please indicate so in the JdbcCustomization.");
    }
  }
Instead of doing delete+insert, we allow updating an existing execution will all new fields

@return the execution-time of the new execution
db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/jdbc/JdbcTaskRepository.java