[`Update Syntax for PostgreSQL`](https://www.postgresql.org/docs/9.4/static/sql-update.html) is different:

    [ WITH [ RECURSIVE ] with_query [, ...] ]
    UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
        SET { column_name = { expression | DEFAULT } |
              ( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) |
              ( column_name [, ...] ) = ( sub-SELECT )
            } [, ...]
        [ FROM from_list ]
        [ WHERE condition | WHERE CURRENT OF cursor_name ]
        [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]


In your case please try the below query:

    UPDATE TableA AS A 
    SET A.indicator = B.indicator 
    FROM TableB AS B
    WHERE B.type = A.type