Разница невелика и связана со сценарием, когда элемент уже существует в таблице.
PutItem всегда будет действовать так, как если бы элемент вообще не существовал в таблице, воссоздавая его полностью с содержимым нового элемента.
UpdateItem, с другой стороны, в случае, когда элемент уже существует, не будет полностью воссоздавать / заменять элемент, а вместо этого обновит атрибуты существующего элемента на основе содержимого нового элемента. Поведение можно настроить для объединения или удаления атрибутов из существующего элемента.
Я надеюсь, что это имеет смысл, но думайте о PutItem как о «мне все равно, что там, сделайте так, как я вам говорю», а об UpdateItem, который больше похож на «изменить элемент, если он существует, чтобы добавить / удалить атрибуты ”