Bulk update of json field not producing executable SQL in Postgres
I'm not in love with the way I've patched, this, but I have replicated the issue and believe it is fixed:

ef27f0209a7942e28ba976264ceaf85891277bb1

I'd like to get a better handle on exactly when and where to apply such casts, but until I dive in deeper I suppose this will work. thanks for the quick response and the fix. Doesnt appear to be fixed.. but the error now is different:
```
peewee.ProgrammingError: syntax error at or near "END"
LINE 1: ... SET "db_tx_count" = CASE "metrics"."merchant_id" END, "db_a...
``` Perhaps you're passing an empty list? Not sure, however there is a test that is passing if you bother seeing the commit. @coleifer same thing happens with UUIDField.
I inherited the UUIDField and applied the same fix, and seems to work well
```
class Merchant(BaseModel):
    name = TextField(primary_key=True)

class Metrics(BaseModel):
    merchant = ForeignKeyField(backref='metrics', field='name', model=Merchant, primary_key=True)
    db_tx_count = JSONField(null=True, default={})
```

I update a bunch of metrics records and store them in metrics_updated.

I then call:
```
Metrics.bulk_update(metrics_updated, fields=['db_tx_count'])
```

That produces the following SQL:

```
'UPDATE "metrics" SET "db_tx_count" = CASE "metrics"."merchant_id" WHEN %s THEN %s WHEN %s THEN %s END WHERE ("metrics"."merchant_id" IN (%s, %s))', ['Hobby Lobby', <psycopg2._json.Json object at 0x7f06c30d5cc0>, 'Caserta Pizzeria Bakr', <psycopg2._json.Json object at 0x7f06c30d5ef0>, 'Hobby Lobby', 'Caserta Pizzeria Bakr'])
```
which triggers the following postgres error:
```
peewee.ProgrammingError: column "db_tx_count" is of type json but expression is of type text
LINE 1: UPDATE "yodlee"."metrics" SET "db_tx_count" = CASE "metrics"...
                                                      ^
HINT:  You will need to rewrite or cast the expression.
```

Postgres 11.2.  Python 3.6.7  Peewee 3.9.6
Please let me know if you need any other info
