class_docstr: Orchestrates delivery of alerts to the appropriate dispatchers.
class_docstr_tok: ["Orchestrates","delivery","of","alerts","to","the","appropriate","dispatchers","."]
docstr: Update the alerts table based on the results of the outputs.
  
  Args:
      alert (Alert): Alert instance which was sent
      output_results (dict): Maps output (str) to whether it sent successfully (bool)
docstr_tok: ["Update","the","alerts","table","based","on","the","results","of","the","outputs",".","Args",":","alert","(","Alert",")",":","Alert","instance","which","was","sent","output_results","(","dict",")",":","Maps","output","(","str",")","to","whether","it","sent","successfully","(","bool",")"]
code: def _update_table(self, alert, output_results):
      """Update the alerts table based on the results of the outputs.
  
      Args:
          alert (Alert): Alert instance which was sent
          output_results (dict): Maps output (str) to whether it sent successfully (bool)
      """
      if not output_results:
          return
  
      if all(output_results.values()) and not alert.merge_enabled:
          # All outputs sent successfully and the alert will not be merged later - delete it now
          self.alerts_table.delete_alerts(
              [(alert.rule_name, alert.alert_id)]
          )
      elif any(output_results.values()):
          # At least one output succeeded - update table accordingly
          self.alerts_table.update_sent_outputs(alert)
  
file_path: streamalert/streamalert/alert_processor/main.py
imports: from os import environ
  import backoff
  from botocore.exceptions import ClientError
  from streamalert.alert_processor.outputs.output_base import StreamAlertOutput
  from streamalert.shared import backoff_handlers, resources
  from streamalert.shared.alert import Alert, AlertCreationError
  from streamalert.shared.alert_table import AlertTable
  from streamalert.shared.config import load_config
  from streamalert.shared.logger import get_logger
  from streamalert.shared.normalize import Normalizer
label_desc: Use image node_id 5 for calling the AlertProcessor obj's underlying member method code with example usage: obj._update_table(alert, output_results) without return types