Допустим нам необходимо вставить новую запись с названием "My Product 0001" в таблицу product или обновить поле visits, если запись уже существует. Поле name - уникальное, именно по полю name метод upsert поймет существует ли запись для обновляния или нужно ее добавлять.

upsert($table, $insertColumns, $updateColumns = true, $params = [])

Upsert и QueryBuilder:

$sql = $queryBuilder->upsert('product', [
        'name' => 'My Product 0001', //уникальное поле
        'visibility' => 1,
        'visits' => 1
    ],
    [
        'visits' => new \yii\db\Expression('visits + 1'),
    ],
    []
);

Upsert и createCommand:

Yii::$app->db->createCommand()->upsert('pages', 
    [
        'name' => 'My Product 0001', //уникальное поле
        'visibility' => 1,
        'visits'
    ], [
        'visits' => new \yii\db\Expression('visits + 1'),
    ], 
    [])->execute();