def METHOD_NAME(self, instance, data):
    # Delete removed questions from the database
    instance.questions.exclude(
        id__in=[
            question["id"]
            for question in data["annotated_questions"]
            if "id" in question
        ]
    ).delete()
    # Update (or create) the questions
    for weight, question in enumerate(data["annotated_questions"]):
        question_id = question.get("id")
        question_instance, _ = models.Question.objects.update_or_create(
            id=question_id,
            defaults={
                "poll": instance,
                "label": question["label"],
                "help_text": question["help_text"],
                "multiple_choice": question["multiple_choice"],
                "is_open": question["is_open"],
                "weight": weight,
            },
        )
        if not question["is_open"]:
            self._update_choices(question, question_instance)
    # Send the component updated signal
    # (the serializer is only used from within the dashboard)
    self._send_component_updated_signal(instance)
    return instance