Performing atomic transactions on DynamoDB tables