For postgres, an empty table passed to db.array will generate syntactically invalid SQL:
(shortened)
model\create tags: DB.array data.topics or {}
yields
INSERT INTO "projects" (<...>, "tags", <...>) VALUES (<...>, ], <...>) RETURNING "id"
This fails because it is rejected by PG.