code: public function delete(array $rates)
      {
          $this->connection->beginTransaction();
  
          try {
  
              /**
               * @var RateInterface $rate
               */
              foreach ($rates as $rate) {
                  $key = $this->getRateKey($rate->getCurrencyCode(), $rate->getDate(), $rate->getRateType(), $rate->getSourceName());
  
                  if (isset($this->identityMap[$key])) {
                      unset($this->identityMap[$key]);
                  }
  
                  $this->connection->executeQuery(sprintf('DELETE FROM %s WHERE source_name = :source_name AND currency_code = :currency_code AND rate_date = :rate_date AND rate_type = :rate_type;', $this->tableName), [
                      'source_name'   => $rate->getSourceName(),
                      'currency_code' => $rate->getCurrencyCode(),
                      'rate_date'     => $rate->getDate()->format('Y-m-d'),
                      'rate_type'     => $rate->getRateType(),
                  ]);
              }
  
              $this->connection->commit();
          } catch (\Exception $e) {
              $this->connection->rollBack();
              throw new ExchangeRateException('Unable to delete rates.', 0, $e);
          }
      }
docs: {@inheritdoc}