Idempotency in plain words, and the four write patterns that make a Databricks pipeline safe to run again