How to prevent PostgreSQL from automatically rounding numeric types?
I want this to be an error

You could use a check constraint that validates the scale of the value, rather than the definition of the data type:
CREATE TABLE ttable 
(
  tcol numeric,
  constraint check_tcol_scale check (scale(tcol) &lt;= 4)
);

Note also that the column itself needs to be redefined as just numeric, rather than numeric(19,4).
Then the following:
insert into ttable values (123.45678);

will result in

ERROR: new row for relation &quot;ttable&quot; violates check constraint &quot;check_tcol_scale&quot;
   Detail: Failing row contains (123.45678)


But
insert into ttable values (123.4567);

will succeed.
Check out this fiddle to see this solution in action.