Как условно вставить элемент в таблицу DynamodB с помощью Boto3

Если у меня есть таблица с хеш-ключом userId и ключом диапазона productId, как я могу поместить элемент в эту таблицу, только если он еще не существует с использованием привязок Dynamodb в boto3?

Нормальный вызов put_item выглядит следующим образом

table.put_item(Item={'userId': 1, 'productId': 2})

Мой вызов с условным выражением выглядит так:

table.put_item(
    Item={'userId': 1, 'productId': 2}, 
    ConditionExpression='userId <> :uid AND productId <> :pid', 
    ExpressionAttributeValues={':uid': 1, ':pid': 3}
)

Но это вызывает ConditionalCheckFailedException каждый раз. Существует ли элемент с тем же productId или нет.