<!-- Love localstack? Please consider supporting our collective:
👉  https://opencollective.com/localstack/donate -->

# Type of request: This is a ...

[ X ] bug report
[ ] feature request

# Detailed description

On BatchWriteItem if items are throttled, we are expected to receive a list of `UnprocessedItems` in the response instead of HTTP 500

## Expected behavior

Receive HTTP 200 but with Unprocessed Items in the response: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html#DDB-BatchWriteItem-response-UnprocessedItems

## Actual behavior

Receive HTTP 500 ProvisionedThroughPutException. "All or nothing"

# Steps to reproduce

Start LocalStack with DynamoDb Service and "DYNAMODB_ERROR_PROBABILITY=1.0"

## Command used to start LocalStack

```
new LocalStackContainer(DockerImageName.parse("localstack/localstack:0.12.9"))
      .withEnv("DYNAMODB_ERROR_PROBABILITY", "1.0")
      .withServices(DYNAMODB)
```

## Client code (AWS SDK code snippet, or sequence of "awslocal" commands)

You can just Randomly generate a big list of objects (exceeding 1kb per batch) and check this behaviour


if (table_def.get('KinesisDataStreamDestinationStatus') in ['DISABLED', 'ENABLE_FAILED', None]):
        table_def['KinesisDataStreamDestinations'] = table_def.get('KinesisDataStreamDestinations') or []
        
        table_def['KinesisDataStreamDestinations'] = [t for t in table_def['KinesisDataStreamDestinations']
            if t['StreamArn'] != data['StreamArn']]
        
        table_def['KinesisDataStreamDestinations'].append({
            'DestinationStatus': 'ACTIVE',
            'DestinationStatusDescription': 'Stream is active',
            'StreamArn': data['StreamArn']
        })
        table_def['KinesisDataStreamDestinationStatus'] = 'ACTIVE'
        response = aws_responses.requests_response({
            'DestinationStatus': 'ACTIVE',
            'StreamArn': data['StreamArn'],
            'TableName': data['TableName']
        })
        return response
    return error_response(
        error_type='ValidationException',
        message='Table is not in a valid state to enable Kinesis Streaming '
        'Destination:EnableKinesisStreamingDestination must be DISABLED or ENABLE_FAILED '
        'to perform ENABLE operation.'
    )
def dynamodb_disable_kinesis_streaming_destination(data, table_def):