The pipeline defined in the bulk update item here is ignored:

```
POST /_bulk
{"update":{"_id":"1","_index":"pipeline-test","pipeline":"lowercase-pipeline"}}
{"upsert":{"myField":"UPPER"},"script":{"source":"ctx._source.myField = 'CHANGED'","lang":"painless"}}
```

Only if the pipeline is defined as query string argument, then the pipeline is picked up and used to process the upset:

```
POST /_bulk?pipeline=lowercase-pipeline
{"update":{"_id":"1","_index":"pipeline-test"}}
{"upsert":{"myField":"UPPER"},"script":{"source":"ctx._source.myField = 'CHANGED'","lang":"painless"}}
```

The Bulk API should also use the pipeline defined in the bulk update item.
server/src/main/java/org/elasticsearch/action/bulk/BulkRequestParser.java
.source(sliceTrimmingCarriageReturn(data, from, nextMarker, xContentType), xContentType)
                                    .setRequireAlias(requireAlias),
                                type
                            );
                        }
                    } else if ("create".equals(action)) {
                        indexRequestConsumer.accept(
                            new IndexRequest(index).id(id)
                                .routing(routing)
                                .version(version)
                                .versionType(versionType)
                                .create(true)
                                .setPipeline(pipeline)
                                .setIfSeqNo(ifSeqNo)
                                .setIfPrimaryTerm(ifPrimaryTerm)
                                .source(sliceTrimmingCarriageReturn(data, from, nextMarker, xContentType), xContentType)
                                .setDynamicTemplates(dynamicTemplates)
                                .setRequireAlias(requireAlias),
                            type
                        );
                    } else if ("update".equals(action)) {
                        if (version != Versions.MATCH_ANY || versionType != VersionType.INTERNAL) {
                            throw new IllegalArgumentException(
                                "Update requests do not support versioning. " + "Please use `if_seq_no` and `if_primary_term` instead"
                            );
                        }
                        
                        if (dynamicTemplates.isEmpty() == false) {
                            throw new IllegalArgumentException(
                                "Update request in line [" + line + "] does not accept " + DYNAMIC_TEMPLATES.getPreferredName()