public static function increment(string $field, $where, int $howMuch = 1): int
    {
        $update = new Update(static::getTableName(), null, static::getAdapterConnection());
        $update->increment($field, $howMuch);

        if ($where instanceof Where) {
            $update->where($where);
        } else if (is_array($where)) {
            foreach ($where as $field => $value) {
                $update->where($field, $value);
            }
        } else if (!is_array(static::$primaryKey) && (is_numeric($where) || is_string($where))) {
            $update->where(static::$primaryKey, $where);
        } else {
            throw new Exception('Unhandled increment case in DB model');
        }

        return $update->exec()->rowCount();
    }