### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

if a Fifo queue is created withotu deduplication  configuration such as `MessageDeduplicationId` or `ContentBasedDeduplication`

Sending a batch of message to such queue will silently fail (with http code 200)

### Expected Behavior

it should fail with error

`InvalidParameterValue: The Queue should either have ContentBasedDeduplication enabled or MessageDeduplicationId provided explicitly `

### How are you starting LocalStack?

With a `docker run` command

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

    `docker run -p 127.0.0.1:4566:4566/tcp --network=host localstack/localstack:latest`

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

```js
const { SQSClient, SendMessageCommand, ReceiveMessageCommand, CreateQueueCommand, SendMessageBatchCommand }  = require('@aws-sdk/client-sqs')

const credentials = {
  accessKeyId: 'test',
  secretAccessKey: 'test',
};

const connection = {
  region: 'us-east-1',
  accountId: '000000000000',
  endpoint: 'http://localhost:4566',
};

const queueName = 'test-queue6.fifo';

async function main() {
  const sqsClient = new SQSClient({
    ...connection,
    credentials,
  });

  const { QueueUrl } = await sqsClient.send(new CreateQueueCommand({
    QueueName: queueName,
    Attributes: {
      FifoQueue: 'true',
      //ContentBasedDeduplication: 'true',
    }
  }));

  await sqsClient.send(new SendMessageBatchCommand({
    QueueUrl,
    Entries: [{
      Id: '1',
      MessageBody: 'test4',
      MessageGroupId: 'test-group'
    }]
  }));


  const { Messages } = await sqsClient.send(new ReceiveMessageCommand({
    QueueUrl
  }));

  return Messages
}

main().then((r) => console.log(r)).catch((e) => console.error(e));
```

### Environment

```markdown
- OS: Osx
- LocalStack:
```


### Anything else?

Use the lastest version on AWS SDK (!)
for k, v in attributes.items():
            if k in sqs_constants.INTERNAL_QUEUE_ATTRIBUTES:
                raise InvalidAttributeName(f"Unknown Attribute {k}.")
            queue.attributes[k] = v
        
        if queue.attributes.get(QueueAttributeName.Policy) == "":
            del queue.attributes[QueueAttributeName.Policy]
        redrive_policy = queue.attributes.get(QueueAttributeName.RedrivePolicy)
        if redrive_policy:
            _redrive_policy = json.loads(redrive_policy)
            dl_target_arn = _redrive_policy.get("deadLetterTargetArn")
            max_receive_count = _redrive_policy.get("maxReceiveCount")
            
            if not dl_target_arn:
                raise InvalidParameterValue(
                    "The required parameter 'deadLetterTargetArn' is missing"
                )
            if max_receive_count is None:
                raise InvalidParameterValue("The required parameter 'maxReceiveCount' is missing")
            try:
                max_receive_count = int(max_receive_count)
                valid_count = 1 <= max_receive_count <= 1000
            except ValueError:
                valid_count = False
            if not valid_count:
                raise InvalidParameterValue(
                    f"Value {redrive_policy} for parameter RedrivePolicy is invalid. Reason: Invalid value for "
                    f"maxReceiveCount: {max_receive_count}, valid values are from 1 to 1000 both inclusive."
                )
    def tag_queue(self, context: RequestContext, queue_url: String, tags: TagMap) -> None: