return self.postgresqlRunLockedQuery('' +
                    'WITH t as (select array_agg(elem::text) from nodes, json_array_elements(nodes.tags::json) elem where id = $2), ' + //jshint ignore: line
                    's as (select distinct unnest(array_remove(t.array_agg, $1)) from t) ' +
                    'UPDATE nodes SET tags = concat( \'[\', (select string_agg(unnest,\',\') from s), \']\'),"updatedAt"=$3 WHERE id = $2', //jshint ignore: line
                    [ JSON.stringify(tag), id, new Date()])