### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

When publishing a batch of messages to SNS using publish-batch command the result is always success, regardless of the topic being present.

Example result:
```
{
    "Successful": [
        {
            "Id": "1",
            "MessageId": "539277ec-2053-4e30-bc97-2f7075687cbd"
        }
    ],
    "Failed": []
}
```

### Expected Behavior

Publishing a batch of messages to a non-existing topic should return an error, as done by real implementation.

Expected Result
```
An error occurred (NotFound) when calling the PublishBatch operation: Topic does not exist
```

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

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

    docker compose up -d

Docker-compose file:
```
services:
  localstack:
    image: 256612512925.dkr.ecr.eu-central-1.amazonaws.com/localstack:1.0.1
    ports:
      - "4576:4566"
    environment:
      - SERVICES=sns,sqs
      - AWS_DEFAULT_REGION=eu-central-1
      - DATA_DIR=/tmp/localstack/data
      - DEBUG=1
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /docker/localstack/data:/tmp/localstack/data
      - ./docker/localstack/init:/docker-entrypoint-initaws.d
```

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

    awslocal sns publish-batch --topic-arn "arn:aws:sns:eu-central-1:000000000000:invalid.fifo" --publish-batch-request-entries Id=1,Message=hi,MessageGroupId=1234


### Environment

```markdown
- OS: MacOS Monterey 12.5
- LocalStack: 1.0.1
```


### Anything else?

_No response_
SubscriptionArn=http_subscription_arn
        )
        assert subscription_attributes["Attributes"]["PendingConfirmation"] == "false"
        server.stop()
        wait_for_port_closed(server.port)
        message = "test_dlq_external_http_endpoint"
        sns_client.publish(TopicArn=topic_arn, Message=message)
        response = sqs_client.receive_message(QueueUrl=dlq_url, WaitTimeSeconds=3)
        assert (
            len(response["Messages"]) == 1
        ), f"invalid number of messages in DLQ response {response}"
        if raw_message_delivery:
            assert response["Messages"][0]["Body"] == message
        else:
            received_message = json.loads(response["Messages"][0]["Body"])
            assert received_message["Type"] == "Notification"
            assert received_message["Message"] == message
        receipt_handle = response["Messages"][0]["ReceiptHandle"]
        sqs_client.delete_message(QueueUrl=dlq_url, ReceiptHandle=receipt_handle)
        expected_unsubscribe_url = (
            f"{service_url}/?Action=Unsubscribe&SubscriptionArn={http_subscription_arn}"
        )
        unsub_request = requests.get(expected_unsubscribe_url)
        unsubscribe_confirmation = xmltodict.parse(unsub_request.content)
        assert "UnsubscribeResponse" in unsubscribe_confirmation
        response = sqs_client.receive_message(QueueUrl=dlq_url, WaitTimeSeconds=2)
        # A
        assert "Messages" not in response
    @pytest.mark.aws_validated
    def test_publish_too_long_message(self, sns_client, sns_create_topic, snapshot):